import java.math.BigInteger;



public class FibonacciShift {

  private static final String MESSAGE = "I BO XWEMG EC UMUP FJPY IDT JBWILFB, WXR H'L YCMSVI JN XNZL XFN WZSZNQ QMEEMW KNINHFR SGFJVGGG, OMQ RZ DY YFUTR ZF GDLCRZ OMOFEQ RL YRY QD XBFL.";
  
  public static void main(final String[] args) {
    final BigInteger I_26 = BigInteger.valueOf(26);
    BigInteger fib1 = BigInteger.ONE;
    BigInteger fib2 = BigInteger.ZERO;
    
    for (int i = 0; i < MESSAGE.length(); i++) {
      char c = MESSAGE.charAt(i);
      if (Character.isLetter(c)) {
        int shift = fib2.mod(I_26).intValue();
        c -= shift;
        if (c < 'A') {
          c += 26;
        }
      }
      System.out.print(c);
      
      //calculate next fibonacci number
      BigInteger temp = fib1.add(fib2);
      fib1 = fib2;
      fib2 = temp;
    }
    System.out.println();
  }
}
